from django.views import View
from apps.users.models import User
from django.http import JsonResponse
import re

"""
需求分析：根据页面功能（从上到下，从左到右），哪些功能需要和后端配合完成
如何确定 哪些功能需要和后端进行交互呢？
    1. 经验
    2.关注类似网站的相似功能
"""

"""
判断用户名是否重复的功能

前端： 用户输入完用户名，失去焦点，发送一个axios(ajax)请求
后端（思路）：
    请求：
        请求方法：get
        路由：  usernames/<username>/count/
        请求参数：  用户名 username（类型：string字符串）
        
    业务逻辑：
        获取用户名
        根据用户名查找数据库用户表
    响应：
        JSON {'code': 0, 'errmg': 'ok', 'count': count}
    步骤：
        1.获取用户名
        2.根据用户名查找数据库用户表
        3.返回响应
"""

# 用户名是否重复 类视图

class UserNameCountView(View):
    def get(self, request, username):
        # 1.获取用户名
        # 2.根据用户名查找数据库用户表，如果是1，表示用户存在，如果是0，不存在
        count = User.objects.filter(username=username).count()
        # 3.返回响应
        return JsonResponse({'code': 0, 'errmg': 'ok', 'count': count})
